home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 726-750 / 729 / ff / source / gui.c < prev    next >
C/C++ Source or Header  |  1995-03-18  |  8KB  |  281 lines

  1. /*
  2.  *  Source generated with GadToolsBox V1.3
  3.  *  which is (c) Copyright 1991,92 Jaba Development
  4.  */
  5.  
  6. #define GT_Underscore    (GT_TagBase+64)
  7.  
  8. #include <exec/types.h>
  9. #include <intuition/intuition.h>
  10. #include <intuition/classes.h>
  11. #include <intuition/classusr.h>
  12. #include <intuition/imageclass.h>
  13. #include <intuition/gadgetclass.h>
  14. #include <libraries/gadtools.h>
  15. #include <graphics/displayinfo.h>
  16. #include <graphics/gfxbase.h>
  17. #include <clib/exec_protos.h>
  18. #include <clib/intuition_protos.h>
  19. #include <clib/gadtools_protos.h>
  20. #include <clib/graphics_protos.h>
  21. #include <string.h>
  22.  
  23. #include "GUI.h"
  24.  
  25. struct Screen         *Scr = NULL;
  26. APTR              VisualInfo = NULL;
  27. struct Window         *Project0Wnd = NULL;
  28. struct Gadget         *Project0GList = NULL;
  29. struct Menu         *Project0Menus = NULL;
  30. struct Gadget         *Project0Gadgets[10];
  31. UWORD              Project0Left = 3;
  32. UWORD              Project0Top = 12;
  33. UWORD              Project0Width = 333;
  34. UWORD              Project0Height = 185;
  35. UBYTE             *Project0Wdt = (UBYTE *)"FindFile V1.01";
  36. extern struct GfxBase *GfxBase;
  37. struct TextAttr      *Font, Attr;
  38. UWORD              FontX, FontY;
  39. UWORD              OffX, OffY;
  40.  
  41. struct NewMenu Project0NewMenu[] = {
  42.     NM_TITLE, (STRPTR)"File", NULL, 0, 0L, NULL,
  43.     NM_ITEM, (STRPTR)"Save Filelist", NULL, 0, 0L, NULL,
  44.     NM_SUB, (STRPTR)"Full paths", (STRPTR)"S", 0, 0L, NULL,
  45.     NM_SUB, (STRPTR)"Names only", (STRPTR)"A", 0, 0L, NULL,
  46.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  47.     NM_ITEM, (STRPTR)"About...", NULL, 0, 0L, NULL,
  48.     NM_ITEM, (STRPTR)NM_BARLABEL, NULL, 0, 0L, NULL,
  49.     NM_ITEM, (STRPTR)"Quit", (STRPTR)"Q", 0, 0L, NULL,
  50.     NM_TITLE, (STRPTR)"Copy", NULL, 0, 0L, NULL,
  51.     NM_ITEM, (STRPTR)"Filename", NULL, 0, 0L, NULL,
  52.     NM_SUB, (STRPTR)"Full path", (STRPTR)"P", 0, 0L, NULL,
  53.     NM_SUB, (STRPTR)"Name only", (STRPTR)"N", 0, 0L, NULL,
  54.     NM_ITEM, (STRPTR)"File list", NULL, 0, 0L, NULL,
  55.     NM_SUB, (STRPTR)"Full paths", (STRPTR)"L", 0, 0L, NULL,
  56.     NM_SUB, (STRPTR)"Names only", (STRPTR)"O", 0, 0L, NULL,
  57.     NM_END, NULL, NULL, 0, 0L, NULL };
  58.  
  59. static UWORD ComputeX( UWORD value )
  60. {
  61.     return(( UWORD )(( FontX * value ) / 8 ));
  62. }
  63.  
  64. static UWORD ComputeY( UWORD value )
  65. {
  66.     return(( UWORD )(( FontY * value ) / 8 ));
  67. }
  68.  
  69. static void ComputeFont( UWORD width, UWORD height )
  70. {
  71.     Font = &Attr;
  72.     Font->ta_Name = GfxBase->DefaultFont->tf_Message.mn_Node.ln_Name;
  73.     Font->ta_YSize = FontY = GfxBase->DefaultFont->tf_YSize;
  74.     FontX = GfxBase->DefaultFont->tf_XSize;
  75.  
  76.     OffY = Scr->Font->ta_YSize + Scr->WBorTop + 1;
  77.     OffX = Scr->WBorLeft;
  78.  
  79.     if ( width && height ) {
  80.     if (( ComputeX( width ) + OffX + Scr->WBorRight ) > Scr->Width )
  81.         goto UseTopaz;
  82.     if (( ComputeY( height ) + OffY + Scr->WBorBottom ) > Scr->Height )
  83.         goto UseTopaz;
  84.     }
  85.     return;
  86.  
  87. UseTopaz:
  88.     Font->ta_Name = (STRPTR)"topaz.font";
  89.     FontX = FontY = Font->ta_YSize = 8;
  90. }
  91.  
  92. int SetupScreen( void )
  93. {
  94.     if ( ! ( Scr = LockPubScreen( NULL )))
  95.     return( 1L );
  96.  
  97.     ComputeFont( 0L, 0L );
  98.  
  99.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  100.     return( 2L );
  101.  
  102.     return( 0L );
  103. }
  104.  
  105. void CloseDownScreen( void )
  106. {
  107.     if ( VisualInfo ) {
  108.     FreeVisualInfo( VisualInfo );
  109.     VisualInfo = NULL;
  110.     }
  111.  
  112.     if ( Scr        ) {
  113.     UnlockPubScreen( NULL, Scr );
  114.     Scr = NULL;
  115.     }
  116. }
  117.  
  118. int OpenProject0Window( void )
  119. {
  120.     struct NewGadget     ng;
  121.     struct Gadget    *g;
  122.     UWORD        wleft = Project0Left, wtop = Project0Top, ww, wh;
  123.  
  124.     ComputeFont( Project0Width, Project0Height );
  125.  
  126.     ww = ComputeX( Project0Width );
  127.     wh = ComputeY( Project0Height );
  128.  
  129.     if (( wleft + ww + OffX + Scr->WBorRight ) > Scr->Width ) wleft = Scr->Width - ww;
  130.     if (( wtop + wh + OffY + Scr->WBorBottom ) > Scr->Height ) wtop = Scr->Height - wh;
  131.  
  132.     if ( ! ( g = CreateContext( &Project0GList )))
  133.     return( 1L );
  134.  
  135.     ng.ng_LeftEdge      =    OffX + ComputeX( 91 );
  136.     ng.ng_TopEdge      =    OffY + ComputeY( 2 );
  137.     ng.ng_Width       =    ComputeX( 239 );
  138.     ng.ng_Height      =    ComputeY( 13 );
  139.     ng.ng_GadgetText      =    (UBYTE *)"Search _for";
  140.     ng.ng_TextAttr      =    Font;
  141.     ng.ng_GadgetID      =    GD_Pattern;
  142.     ng.ng_Flags       =    PLACETEXT_LEFT;
  143.     ng.ng_VisualInfo      =    VisualInfo;
  144.  
  145.     g = CreateGadget( STRING_KIND, g, &ng, GTST_String, "#?", GTST_MaxChars, 256, GT_Underscore, '_', TAG_DONE );
  146.  
  147.     Project0Gadgets[ 0 ] = g;
  148.  
  149.     ng.ng_TopEdge      =    OffY + ComputeY( 16 );
  150.     ng.ng_Width       =    ComputeX( 180 );
  151.     ng.ng_GadgetText      =    (UBYTE *)"_Directory ";
  152.     ng.ng_GadgetID      =    GD_Dir;
  153.  
  154.     g = CreateGadget( STRING_KIND, g, &ng, GTST_MaxChars, 256, GT_Underscore, '_', TAG_DONE );
  155.  
  156.     Project0Gadgets[ 1 ] = g;
  157.  
  158.     ng.ng_LeftEdge      =    OffX + ComputeX( 3 );
  159.     ng.ng_TopEdge      =    OffY + ComputeY( 30 );
  160.     ng.ng_GadgetText      =    (UBYTE *)"Search su_bdirectories";
  161.     ng.ng_GadgetID      =    GD_Recur;
  162.     ng.ng_Flags       =    PLACETEXT_RIGHT;
  163.  
  164.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, TRUE, GT_Underscore, '_', TAG_DONE );
  165.  
  166.     Project0Gadgets[ 2 ] = g;
  167.  
  168.     ng.ng_TopEdge      =    OffY + ComputeY( 42 );
  169.     ng.ng_GadgetText      =    (UBYTE *)"And directory _links";
  170.     ng.ng_GadgetID      =    GD_Links;
  171.  
  172.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  173.  
  174.     Project0Gadgets[ 3 ] = g;
  175.  
  176.     ng.ng_TopEdge      =    OffY + ComputeY( 170 );
  177.     ng.ng_Width       =    ComputeX( 73 );
  178.     ng.ng_Height      =    ComputeY( 13 );
  179.     ng.ng_GadgetText      =    (UBYTE *)"_Go";
  180.     ng.ng_GadgetID      =    GD_Go;
  181.     ng.ng_Flags       =    PLACETEXT_IN;
  182.  
  183.     g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  184.  
  185.     Project0Gadgets[ 4 ] = g;
  186.  
  187.     ng.ng_LeftEdge      =    OffX + ComputeX( 257 );
  188.     ng.ng_GadgetText      =    (UBYTE *)"_Stop";
  189.     ng.ng_GadgetID      =    GD_Stop;
  190.  
  191.     g = CreateGadget( BUTTON_KIND, g, &ng, GA_Disabled, TRUE, GT_Underscore, '_', TAG_DONE );
  192.  
  193.     Project0Gadgets[ 5 ] = g;
  194.  
  195.     ng.ng_LeftEdge      =    OffX + ComputeX( 273 );
  196.     ng.ng_TopEdge      =    OffY + ComputeY( 16 );
  197.     ng.ng_Width       =    ComputeX( 57 );
  198.     ng.ng_GadgetText      =    (UBYTE *)"B_rowse";
  199.     ng.ng_GadgetID      =    GD_Browse;
  200.  
  201.     g = CreateGadget( BUTTON_KIND, g, &ng, GT_Underscore, '_', TAG_DONE );
  202.  
  203.     Project0Gadgets[ 6 ] = g;
  204.  
  205.     ng.ng_LeftEdge      =    OffX + ComputeX( 3 );
  206.     ng.ng_TopEdge      =    OffY + ComputeY( 55 );
  207.     ng.ng_Width       =    ComputeX( 327 );
  208.     ng.ng_Height      =    ComputeY( 60 );
  209.     ng.ng_GadgetText      =    NULL;
  210.     ng.ng_GadgetID      =    GD_FileList;
  211.     ng.ng_Flags       =    0;
  212.  
  213.     g = CreateGadget( LISTVIEW_KIND, g, &ng, GTLV_Labels, NULL,TAG_DONE );
  214.  
  215.     Project0Gadgets[ 7 ] = g;
  216.  
  217.     ng.ng_TopEdge      =    OffY + ComputeY( 116 );
  218.     ng.ng_Height      =    ComputeY( 52 );
  219.     ng.ng_GadgetID      =    GD_DirList;
  220.  
  221.     g = CreateGadget( LISTVIEW_KIND, g, &ng, GTLV_Labels, NULL, GTLV_ReadOnly, TRUE, TAG_DONE );
  222.  
  223.     Project0Gadgets[ 8 ] = g;
  224.  
  225.     ng.ng_LeftEdge      =    OffX + ComputeX( 226 );
  226.     ng.ng_TopEdge      =    OffY + ComputeY( 42 );
  227.     ng.ng_GadgetText      =    (UBYTE *)"_Wildcards";
  228.     ng.ng_GadgetID      =    GD_Wildcards;
  229.     ng.ng_Flags       =    PLACETEXT_RIGHT;
  230.  
  231.     g = CreateGadget( CHECKBOX_KIND, g, &ng, GTCB_Checked, TRUE, GT_Underscore, '_', TAG_DONE );
  232.  
  233.     Project0Gadgets[ 9 ] = g;
  234.  
  235.     if ( ! g )
  236.     return( 2L );
  237.  
  238.     if ( ! ( Project0Menus = CreateMenus( Project0NewMenu, GTMN_FrontPen, 0L, TAG_DONE )))
  239.     return( 3L );
  240.  
  241.     LayoutMenus( Project0Menus, VisualInfo, TAG_DONE );
  242.  
  243.     if ( ! ( Project0Wnd = OpenWindowTags( NULL,
  244.             WA_Left,          wleft,
  245.             WA_Top,          wtop,
  246.             WA_Width,          ww + OffX + Scr->WBorRight,
  247.             WA_Height,          wh + OffY + Scr->WBorBottom,
  248.             WA_IDCMP,          STRINGIDCMP|CHECKBOXIDCMP|BUTTONIDCMP|LISTVIEWIDCMP|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_VANILLAKEY|IDCMP_REFRESHWINDOW,
  249.             WA_Flags,          WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_CLOSEGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
  250.             WA_Gadgets,       Project0GList,
  251.             WA_Title,          Project0Wdt,
  252.             WA_ScreenTitle,   "FindFile V1.01 ©1992 Dave Schreiber",
  253.             WA_PubScreen,     Scr,
  254.             TAG_DONE )))
  255.     return( 4L );
  256.  
  257.     SetMenuStrip( Project0Wnd, Project0Menus );
  258.     GT_RefreshWindow( Project0Wnd, NULL );
  259.  
  260.     return( 0L );
  261. }
  262.  
  263. void CloseProject0Window( void )
  264. {
  265.     if ( Project0Menus      ) {
  266.     ClearMenuStrip( Project0Wnd );
  267.     FreeMenus( Project0Menus );
  268.     Project0Menus = NULL;     }
  269.  
  270.     if ( Project0Wnd        ) {
  271.     CloseWindow( Project0Wnd );
  272.     Project0Wnd = NULL;
  273.     }
  274.  
  275.     if ( Project0GList      ) {
  276.     FreeGadgets( Project0GList );
  277.     Project0GList = NULL;
  278.     }
  279. }
  280.  
  281.